package corn

import (
	"fmt"
	"gitee.com/worklz/yunj-blog-go-micro-common/log"

	"github.com/robfig/cron/v3"
)

var Corn *cron.Cron

// InitCorn 初始化定时任务
func InitCorn(tasks []TaskInterface) {
	for _, t := range tasks {
		err := t.SetStatus(t.DefaultStartStatus())
		if err != nil {
			panic(fmt.Sprintf("%s状态设置异常: %v", t.LogPrefix(), err))
		}
	}
	Corn = cron.New(cron.WithSeconds())
	if err := TaskSchedulerInstance().Start(tasks); err != nil {
		panic(fmt.Sprintf("定时任务执行失败: %v", err))
	}
	// 启动cron调度器
	Corn.Start()
	log.Info("定时任务执行开始...")
}
